<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>I - Zero Extension框架专用前端文档</title>
    
    <meta name="description" content="前端开发框架，官方地址：http://www.vertx-ui.cn" />
    
        <meta name="keywords" content="zero,zero-extension,vert.x" />
        <meta name="keyword" content="zero,zero-extension,vert.x" />
    
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <link type="text/css" rel="stylesheet" href="styles/zero.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <input type="text" id="nav-search" placeholder="Search" />
    
    <h2><a href="index.html">Home</a></h2><h2><a href="http://www.vertxai.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ai</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web-extension/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui Extension</a></h2><h2><a href="http://www.vertxui.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero UI</a></h2><h2><a href="http://www.vertxai.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Ai</a></h2><h2><a href="http://www.vertxup.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Framework</a></h2><h2><a href="http://www.origin-x.cn" target="_blank" class="menu-item" id="website_link" >「Home」Origin X Engine</a></h2><h3>Classes</h3><ul><li><a href="I.html">I</a><ul class='methods'><li data-type='method'><a href="I.html#.action">action</a></li><li data-type='method'><a href="I.html#.apis">apis</a></li><li data-type='method'><a href="I.html#.app">app</a></li><li data-type='method'><a href="I.html#.application">application</a></li><li data-type='method'><a href="I.html#.attributes">attributes</a></li><li data-type='method'><a href="I.html#.authorize">authorize</a></li><li data-type='method'><a href="I.html#.category">category</a></li><li data-type='method'><a href="I.html#.company">company</a></li><li data-type='method'><a href="I.html#.control">control</a></li><li data-type='method'><a href="I.html#.forest">forest</a></li><li data-type='method'><a href="I.html#.form">form</a></li><li data-type='method'><a href="I.html#.forms">forms</a></li><li data-type='method'><a href="I.html#.inited">inited</a></li><li data-type='method'><a href="I.html#.jobResume">jobResume</a></li><li data-type='method'><a href="I.html#.jobs">jobs</a></li><li data-type='method'><a href="I.html#.jobStart">jobStart</a></li><li data-type='method'><a href="I.html#.jobStop">jobStop</a></li><li data-type='method'><a href="I.html#.lists">lists</a></li><li data-type='method'><a href="I.html#.login">login</a></li><li data-type='method'><a href="I.html#.logout">logout</a></li><li data-type='method'><a href="I.html#.menus">menus</a></li><li data-type='method'><a href="I.html#.mission">mission</a></li><li data-type='method'><a href="I.html#.module">module</a></li><li data-type='method'><a href="I.html#.ops">ops</a></li><li data-type='method'><a href="I.html#.page">page</a></li><li data-type='method'><a href="I.html#.password">password</a></li><li data-type='method'><a href="I.html#.profile">profile</a></li><li data-type='method'><a href="I.html#.relation">relation</a></li><li data-type='method'><a href="I.html#.relationDelete">relationDelete</a></li><li data-type='method'><a href="I.html#.relationSave">relationSave</a></li><li data-type='method'><a href="I.html#.tabular">tabular</a></li><li data-type='method'><a href="I.html#.todo">todo</a></li><li data-type='method'><a href="I.html#.token">token</a></li><li data-type='method'><a href="I.html#.uri">uri</a></li><li data-type='method'><a href="I.html#.user">user</a></li><li data-type='method'><a href="I.html#.visitor">visitor</a></li></ul></li><li><a href="IxDialog.html">IxDialog</a></li><li><a href="IxTab.html">IxTab</a></li><li><a href="Login.html">Login</a></li><li><a href="Op.html">Op</a><ul class='methods'><li data-type='method'><a href="Op.html#.$opLogin">$opLogin</a></li><li data-type='method'><a href="Op.html#.$opLogout">$opLogout</a></li></ul></li><li><a href="X6.html">X6</a></li></ul><h3>Modules</h3><ul><li><a href="module-_channel.html">_channel</a><ul class='methods'><li data-type='method'><a href="module-_channel.html#.yiAssist">yiAssist</a></li><li data-type='method'><a href="module-_channel.html#.yiColumn">yiColumn</a></li><li data-type='method'><a href="module-_channel.html#.yiCompany">yiCompany</a></li><li data-type='method'><a href="module-_channel.html#.yiContainer">yiContainer</a></li><li data-type='method'><a href="module-_channel.html#.yiControl">yiControl</a></li><li data-type='method'><a href="module-_channel.html#.yiModule">yiModule</a></li><li data-type='method'><a href="module-_channel.html#.yiPartForm">yiPartForm</a></li><li data-type='method'><a href="module-_channel.html#.yiStandard">yiStandard</a></li><li data-type='method'><a href="module-_channel.html#.ylCard">ylCard</a></li><li data-type='method'><a href="module-_channel.html#.ylDynamic">ylDynamic</a></li><li data-type='method'><a href="module-_channel.html#.ylTabExtra">ylTabExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoAction">yoAction</a></li><li data-type='method'><a href="module-_channel.html#.yoAmbient">yoAmbient</a></li><li data-type='method'><a href="module-_channel.html#.yoComponent">yoComponent</a></li><li data-type='method'><a href="module-_channel.html#.yoControl">yoControl</a></li><li data-type='method'><a href="module-_channel.html#.yoDynamic">yoDynamic</a></li><li data-type='method'><a href="module-_channel.html#.yoFilter">yoFilter</a></li><li data-type='method'><a href="module-_channel.html#.yoForm">yoForm</a></li><li data-type='method'><a href="module-_channel.html#.yoFormAdd">yoFormAdd</a></li><li data-type='method'><a href="module-_channel.html#.yoFormEdit">yoFormEdit</a></li><li data-type='method'><a href="module-_channel.html#.yoList">yoList</a></li><li data-type='method'><a href="module-_channel.html#.yoListBatch">yoListBatch</a></li><li data-type='method'><a href="module-_channel.html#.yoListExtra">yoListExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoListOpen">yoListOpen</a></li><li data-type='method'><a href="module-_channel.html#.yoListSearch">yoListSearch</a></li><li data-type='method'><a href="module-_channel.html#.yoPolymorphism">yoPolymorphism</a></li><li data-type='method'><a href="module-_channel.html#.yoRender">yoRender</a></li><li data-type='method'><a href="module-_channel.html#.yoTable">yoTable</a></li><li data-type='method'><a href="module-_channel.html#.yoTabPage">yoTabPage</a></li><li data-type='method'><a href="module-_channel.html#.yuRouter">yuRouter</a></li></ul></li><li><a href="module-_constant.html">_constant</a><ul class='members'><li data-type='member'><a href="module-_constant.html#.Mode">Mode</a></li><li data-type='member'><a href="module-_constant.html#.Opt">Opt</a></li><li data-type='member'><a href="module-_constant.html#.V">V</a></li></ul></li><li><a href="module-_event.html">_event</a><ul class='methods'><li data-type='method'><a href="module-_event.html#.*fabricAnalyzer">*fabricAnalyzer</a></li><li data-type='method'><a href="module-_event.html#.etParallel">etParallel</a></li><li data-type='method'><a href="module-_event.html#.etPure">etPure</a></li><li data-type='method'><a href="module-_event.html#.etSequence">etSequence</a></li><li data-type='method'><a href="module-_event.html#.etUniform">etUniform</a></li></ul></li><li><a href="module-_function.html">_function</a><ul class='methods'><li data-type='method'><a href="module-_function.html#.mapAsyncDatum">mapAsyncDatum</a></li><li data-type='method'><a href="module-_function.html#.mapButtons">mapButtons</a></li><li data-type='method'><a href="module-_function.html#.mapFun">mapFun</a></li><li data-type='method'><a href="module-_function.html#.mapMeta">mapMeta</a></li><li data-type='method'><a href="module-_function.html#.mapUri">mapUri</a></li><li data-type='method'><a href="module-_function.html#.onApp">onApp</a></li><li data-type='method'><a href="module-_function.html#.onOp">onOp</a></li><li data-type='method'><a href="module-_function.html#.onRelation">onRelation</a></li><li data-type='method'><a href="module-_function.html#.onRelationIdentifiers">onRelationIdentifiers</a></li><li data-type='method'><a href="module-_function.html#.onRelationType">onRelationType</a></li><li data-type='method'><a href="module-_function.html#.onTree">onTree</a></li><li data-type='method'><a href="module-_function.html#.toArray">toArray</a></li><li data-type='method'><a href="module-_function.html#.toColor">toColor</a></li><li data-type='method'><a href="module-_function.html#.toDialog">toDialog</a></li><li data-type='method'><a href="module-_function.html#.toIdentifier">toIdentifier</a></li><li data-type='method'><a href="module-_function.html#.toModelId">toModelId</a></li><li data-type='method'><a href="module-_function.html#.toNamespace">toNamespace</a></li><li data-type='method'><a href="module-_function.html#.toUri">toUri</a></li><li data-type='method'><a href="module-_function.html#.upCondition">upCondition</a></li><li data-type='method'><a href="module-_function.html#.upList">upList</a></li><li data-type='method'><a href="module-_function.html#.upLoading">upLoading</a></li><li data-type='method'><a href="module-_function.html#.upQuery">upQuery</a></li><li data-type='method'><a href="module-_function.html#.upValue">upValue</a></li></ul></li><li><a href="module-_kernel.html">_kernel</a><ul class='methods'><li data-type='method'><a href="module-_kernel.html#.authData">authData</a></li><li data-type='method'><a href="module-_kernel.html#.authGroups">authGroups</a></li><li data-type='method'><a href="module-_kernel.html#.authKeySet">authKeySet</a></li><li data-type='method'><a href="module-_kernel.html#.authRequest">authRequest</a></li><li data-type='method'><a href="module-_kernel.html#.authRule">authRule</a></li><li data-type='method'><a href="module-_kernel.html#.authTpl">authTpl</a></li><li data-type='method'><a href="module-_kernel.html#.authTreeRes">authTreeRes</a></li><li data-type='method'><a href="module-_kernel.html#.configClick">configClick</a></li><li data-type='method'><a href="module-_kernel.html#.configColumn">configColumn</a></li><li data-type='method'><a href="module-_kernel.html#.configDialog">configDialog</a></li><li data-type='method'><a href="module-_kernel.html#.configGrid">configGrid</a></li><li data-type='method'><a href="module-_kernel.html#.configRelation">configRelation</a></li><li data-type='method'><a href="module-_kernel.html#.designer">designer</a></li><li data-type='method'><a href="module-_kernel.html#.dialog">dialog</a></li><li data-type='method'><a href="module-_kernel.html#.form">form</a></li><li data-type='method'><a href="module-_kernel.html#.inApi">inApi</a></li><li data-type='method'><a href="module-_kernel.html#.init">init</a></li><li data-type='method'><a href="module-_kernel.html#.inJob">inJob</a></li><li data-type='method'><a href="module-_kernel.html#.outApi">outApi</a></li><li data-type='method'><a href="module-_kernel.html#.outJob">outJob</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfButton">parserOfButton</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfColor">parserOfColor</a></li><li data-type='method'><a href="module-_kernel.html#.sexExAction">sexExAction</a></li><li data-type='method'><a href="module-_kernel.html#.sexExPlugin">sexExPlugin</a></li><li data-type='method'><a href="module-_kernel.html#.uiDialog">uiDialog</a></li><li data-type='method'><a href="module-_kernel.html#.uiTab">uiTab</a></li><li data-type='method'><a href="module-_kernel.html#.xuiContainer">xuiContainer</a></li><li data-type='method'><a href="module-_kernel.html#.xuiDecorator">xuiDecorator</a></li><li data-type='method'><a href="module-_kernel.html#.xuiGrid">xuiGrid</a></li></ul></li><li><a href="module-_rx.html">_rx</a><ul class='methods'><li data-type='method'><a href="module-_rx.html#.rsDirty">rsDirty</a></li><li data-type='method'><a href="module-_rx.html#.rsLoading">rsLoading</a></li><li data-type='method'><a href="module-_rx.html#.rsOpened">rsOpened</a></li><li data-type='method'><a href="module-_rx.html#.rsSubmitting">rsSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rsVisible">rsVisible</a></li><li data-type='method'><a href="module-_rx.html#.rx">rx</a></li><li data-type='method'><a href="module-_rx.html#.rxAssist">rxAssist</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchDelete">rxBatchDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchEdit">rxBatchEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxChannel">rxChannel</a></li><li data-type='method'><a href="module-_rx.html#.rxColumn">rxColumn</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnMy">rxColumnMy</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnSave">rxColumnSave</a></li><li data-type='method'><a href="module-_rx.html#.rxCondition">rxCondition</a></li><li data-type='method'><a href="module-_rx.html#.rxDelete">rxDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxDirty">rxDirty</a></li><li data-type='method'><a href="module-_rx.html#.rxExport">rxExport</a></li><li data-type='method'><a href="module-_rx.html#.rxFilter">rxFilter</a></li><li data-type='method'><a href="module-_rx.html#.rxImport">rxImport</a></li><li data-type='method'><a href="module-_rx.html#.rxLoading">rxLoading</a></li><li data-type='method'><a href="module-_rx.html#.rxPostClose">rxPostClose</a></li><li data-type='method'><a href="module-_rx.html#.rxPostOpen">rxPostOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxProjection">rxProjection</a></li><li data-type='method'><a href="module-_rx.html#.rxSearch">rxSearch</a></li><li data-type='method'><a href="module-_rx.html#.rxSelected">rxSelected</a></li><li data-type='method'><a href="module-_rx.html#.rxSubmitting">rxSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rxTabAdd">rxTabAdd</a></li><li data-type='method'><a href="module-_rx.html#.rxTabClose">rxTabClose</a></li><li data-type='method'><a href="module-_rx.html#.rxTabEdit">rxTabEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxTabOpen">rxTabOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxView">rxView</a></li></ul></li><li><a href="module-_smart.html">_smart</a><ul class='methods'><li data-type='method'><a href="module-_smart.html#.smartForm">smartForm</a></li><li data-type='method'><a href="module-_smart.html#.smartList">smartList</a></li></ul></li><li><a href="module-web-component.html">web-component</a><ul class='methods'><li data-type='method'><a href="module-web-component.html#.*ExAction">*ExAction</a></li><li data-type='method'><a href="module-web-component.html#.*ExButton">*ExButton</a></li><li data-type='method'><a href="module-web-component.html#.*ExDialog">*ExDialog</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorBatch">*ExEditorBatch</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorColumn">*ExEditorColumn</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorExport">*ExEditorExport</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorImport">*ExEditorImport</a></li><li data-type='method'><a href="module-web-component.html#.*ExNavigation">*ExNavigation</a></li><li data-type='method'><a href="module-web-component.html#.*ExSearch">*ExSearch</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExTable">*ExTable</a></li><li data-type='method'><a href="module-web-component.html#.*IxChannel">*IxChannel</a></li><li data-type='method'><a href="module-web-component.html#.*IxDatabase">*IxDatabase</a></li><li data-type='method'><a href="module-web-component.html#.*IxDict">*IxDict</a></li><li data-type='method'><a href="module-web-component.html#.*IxIntegration">*IxIntegration</a></li><li data-type='method'><a href="module-web-component.html#.*IxMapping">*IxMapping</a></li><li data-type='method'><a href="module-web-component.html#.*IxRule">*IxRule</a></li><li data-type='method'><a href="module-web-component.html#.*IxService">*IxService</a></li><li data-type='method'><a href="module-web-component.html#.ExAccount">ExAccount</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExApps">ExApps</a></li><li data-type='method'><a href="module-web-component.html#.ExArbor">ExArbor</a></li><li data-type='method'><a href="module-web-component.html#.ExCategory">ExCategory</a></li><li data-type='method'><a href="module-web-component.html#.ExDeploy">ExDeploy</a></li><li data-type='method'><a href="module-web-component.html#.ExEntry">ExEntry</a></li><li data-type='method'><a href="module-web-component.html#.ExForm">ExForm</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicEditor">ExGraphicEditor</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicViewer">ExGraphicViewer</a></li><li data-type='method'><a href="module-web-component.html#.ExHistory">ExHistory</a></li><li data-type='method'><a href="module-web-component.html#.ExListComplex">ExListComplex</a></li><li data-type='method'><a href="module-web-component.html#.ExListOpen">ExListOpen</a></li><li data-type='method'><a href="module-web-component.html#.ExListQuery">ExListQuery</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogin">ExLogin</a></li><li data-type='method'><a href="module-web-component.html#.ExRecord">ExRecord</a></li><li data-type='method'><a href="module-web-component.html#.ExRegiment">ExRegiment</a></li><li data-type='method'><a href="module-web-component.html#.ExRelation">ExRelation</a></li><li data-type='method'><a href="module-web-component.html#.ExService">ExService</a></li><li data-type='method'><a href="module-web-component.html#.ExSubmit">ExSubmit</a></li><li data-type='method'><a href="module-web-component.html#.ExTab">ExTab</a></li><li data-type='method'><a href="module-web-component.html#.ExTabular">ExTabular</a></li><li data-type='method'><a href="module-web-component.html#.ExTrackField">ExTrackField</a></li><li data-type='method'><a href="module-web-component.html#.ExWizard">ExWizard</a></li><li data-type='method'><a href="module-web-component.html#.OxAnchor">OxAnchor</a></li><li data-type='method'><a href="module-web-component.html#.OxCard">OxCard</a></li><li data-type='method'><a href="module-web-component.html#.OxCategory">OxCategory</a></li><li data-type='method'><a href="module-web-component.html#.OxCi">OxCi</a></li><li data-type='method'><a href="module-web-component.html#.OxForm">OxForm</a></li><li data-type='method'><a href="module-web-component.html#.OxHistory">OxHistory</a></li><li data-type='method'><a href="module-web-component.html#.OxList">OxList</a></li><li data-type='method'><a href="module-web-component.html#.OxModule">OxModule</a></li><li data-type='method'><a href="module-web-component.html#.OxRelation">OxRelation</a></li><li data-type='method'><a href="module-web-component.html#.OxTab">OxTab</a></li><li data-type='method'><a href="module-web-component.html#.OxTopology">OxTopology</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#@ox">@ox</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">I</h1>
    

    




<section>

<header>
    
        <h2>
        I
        </h2>
        
    
</header>

<article>
    
        <div class="container-overview">
        
            

    

    <h4 class="name" id="I"><span class="type-signature"></span>new I<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>Ajax接口类</h2>
<p>调用方式：</p>
<pre class="prettyprint source lang-js"><code>import Ex from 'ex';

Ex.I.application().then(response => {

})
</code></pre>
<p>安全接口带Token，非安全接口不带Token，统一调用 Zero Extension中的特殊接口。</p>
<h3>1. 接口列表</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th>HTTP方法</th>
<th style="text-align:left">路径</th>
<th>安全</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">action</td>
<td>POST</td>
<td style="text-align:left"><code>/api/form/actions</code></td>
<td>是</td>
<td style="text-align:left">读取表单中的Action专用方法。</td>
</tr>
<tr>
<td style="text-align:left">apis</td>
<td>POST</td>
<td style="text-align:left"><code>/api/x-api/search</code></td>
<td>是</td>
<td style="text-align:left">查询引擎查询<code>I_API</code>表结构中的信息。</td>
</tr>
<tr>
<td style="text-align:left">app</td>
<td>GET</td>
<td style="text-align:left"><code>/api/name/:name</code></td>
<td>否</td>
<td style="text-align:left">读取<code>X_APP</code>中的可公开部分信息。</td>
</tr>
<tr>
<td style="text-align:left">application</td>
<td>GET</td>
<td style="text-align:left"><code>/api/app</code></td>
<td>是</td>
<td style="text-align:left">「可读取敏感信息」读取应用程序的基本数据，和<code>app</code>方法对应。</td>
</tr>
<tr>
<td style="text-align:left">attributes</td>
<td>GET</td>
<td style="text-align:left"><code>/api/model/identifier/:identifier</code></td>
<td>是</td>
<td style="text-align:left">读取模型中的属性集。</td>
</tr>
<tr>
<td style="text-align:left">authorize</td>
<td>POST</td>
<td style="text-align:left"><code>/oauth/authorize</code></td>
<td>否</td>
<td style="text-align:left">OAuth认证流程中申请临时授权码的专用方法。</td>
</tr>
<tr>
<td style="text-align:left">category</td>
<td>GET</td>
<td style="text-align:left"><code>/api/:type/category/:code</code></td>
<td>是</td>
<td style="text-align:left">读取唯一分类记录。</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td>GET</td>
<td style="text-align:left"><code>/api/type/categories/:type</code></td>
<td>是</td>
<td style="text-align:left">读取某一类分类记录。</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td>POST</td>
<td style="text-align:left"><code>/api/types/categories</code></td>
<td>是</td>
<td style="text-align:left">读取多类分类数据记录。</td>
</tr>
<tr>
<td style="text-align:left">company</td>
<td>GET</td>
<td style="text-align:left"><code>/api/company/employee/:eid</code></td>
<td>是</td>
<td style="text-align:left">根据员工ID读取员工所属公司信息。</td>
</tr>
<tr>
<td style="text-align:left">control</td>
<td>POST</td>
<td style="text-align:left"><code>/api/ui/control</code></td>
<td>是</td>
<td style="text-align:left">读取界面控件配置信息<code>UI_CONTROL</code>。</td>
</tr>
<tr>
<td style="text-align:left">forest</td>
<td>GET</td>
<td style="text-align:left">无</td>
<td>是</td>
<td style="text-align:left">没有直接对应的API信息，该方法读取<code>X_CATEGORY</code>并构造多叉树。</td>
</tr>
<tr>
<td style="text-align:left">form</td>
<td>GET</td>
<td style="text-align:left"><code>/api/ui/form/:code</code></td>
<td>是</td>
<td style="text-align:left">根据表单编码读取单表单记录<code>UI_FORM</code>。</td>
</tr>
<tr>
<td style="text-align:left">forms</td>
<td>GET</td>
<td style="text-align:left"><code>/api/ui/forms/:identifier</code></td>
<td>是</td>
<td style="text-align:left">根据模型统一标识符，读取和模型相关的所有表单记录。</td>
</tr>
<tr>
<td style="text-align:left">inited</td>
<td>GET</td>
<td style="text-align:left"><code>/api/app</code>和<code>/api/menus</code></td>
<td>是</td>
<td style="text-align:left">应用程序配置的完整初始化流程，登录后读取。</td>
</tr>
<tr>
<td style="text-align:left">jobResume</td>
<td>PUT</td>
<td style="text-align:left"><code>/api/job/resume/:key</code></td>
<td>是</td>
<td style="text-align:left">恢复任务。</td>
</tr>
<tr>
<td style="text-align:left">jobs</td>
<td>GET</td>
<td style="text-align:left"><code>/api/job/info/by/sigma</code></td>
<td>是</td>
<td style="text-align:left">按sigma读取所有的任务定义信息。</td>
</tr>
<tr>
<td style="text-align:left">jobStart</td>
<td>PUT</td>
<td style="text-align:left"><code>/api/job/start/:key</code></td>
<td>是</td>
<td style="text-align:left">启动任务。</td>
</tr>
<tr>
<td style="text-align:left">jobStop</td>
<td>PUT</td>
<td style="text-align:left"><code>/api/job/stop/:key</code></td>
<td>是</td>
<td style="text-align:left">停止任务。</td>
</tr>
<tr>
<td style="text-align:left">lists</td>
<td>GET</td>
<td style="text-align:left"><code>/api/ui/lists/:identifier</code></td>
<td>是</td>
<td style="text-align:left">按identifier读取所有列表配置信息。</td>
</tr>
<tr>
<td style="text-align:left">login</td>
<td>POST</td>
<td style="text-align:left"><code>/oauth/login</code></td>
<td>否</td>
<td style="text-align:left">登录专用接口，用于读取<code>client_secret</code>和<code>client_id</code>专用方法。</td>
</tr>
<tr>
<td style="text-align:left">logout</td>
<td>POST</td>
<td style="text-align:left"><code>/api/user/logout</code></td>
<td>是</td>
<td style="text-align:left">注销专用接口。</td>
</tr>
<tr>
<td style="text-align:left">menus</td>
<td>GET</td>
<td style="text-align:left"><code>/api/menus</code></td>
<td>是</td>
<td style="text-align:left">读取应用相关的配置信息。</td>
</tr>
<tr>
<td style="text-align:left">mission</td>
<td>GET</td>
<td style="text-align:left"><code>/api/job/info/mission/:key</code></td>
<td>是</td>
<td style="text-align:left">读取任务的详细信息（包括任务状态、运行状态等）。</td>
</tr>
<tr>
<td style="text-align:left">module</td>
<td>GET</td>
<td style="text-align:left"><code>/api/module?entry={entry}</code></td>
<td>是</td>
<td style="text-align:left">根据入口信息读取模块配置数据，对应后端<code>X_MODULE</code>表。</td>
</tr>
<tr>
<td style="text-align:left">ops</td>
<td>POST</td>
<td style="text-align:left"><code>/api/ui/ops</code></td>
<td>是</td>
<td style="text-align:left">读取<code>UI_OP</code>配置信息，可动态读取，也可静态读取。</td>
</tr>
<tr>
<td style="text-align:left">page</td>
<td>POST</td>
<td style="text-align:left"><code>/api/ui/page</code></td>
<td>是</td>
<td style="text-align:left">读取当前页面配置信息。</td>
</tr>
<tr>
<td style="text-align:left">password</td>
<td>POST</td>
<td style="text-align:left"><code>/api/user/password</code></td>
<td>是</td>
<td style="text-align:left">更新登录账号密码专用接口。</td>
</tr>
<tr>
<td style="text-align:left">profile</td>
<td>POST</td>
<td style="text-align:left"><code>/api/user/profile</code></td>
<td>是</td>
<td style="text-align:left">更新当前登录账号的Profile信息。</td>
</tr>
<tr>
<td style="text-align:left">relation</td>
<td>GET</td>
<td style="text-align:left"><code>/api/relation</code></td>
<td>是</td>
<td style="text-align:left">读取关系定义专用接口。</td>
</tr>
<tr>
<td style="text-align:left">relationDelete</td>
<td>POST</td>
<td style="text-align:left"><code>/api/ox/relation/delete</code></td>
<td>是</td>
<td style="text-align:left">删除关系专用方法。</td>
</tr>
<tr>
<td style="text-align:left">relationSave</td>
<td>POST</td>
<td style="text-align:left"><code>/api/ox/relation/save</code></td>
<td>是</td>
<td style="text-align:left">保存关系专用方法。</td>
</tr>
<tr>
<td style="text-align:left">tabular</td>
<td>GET</td>
<td style="text-align:left"><code>/api/:type/tabular/:code</code></td>
<td>是</td>
<td style="text-align:left">读取唯一字典记录。</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td>GET</td>
<td style="text-align:left"><code>/api/type/tabulars/:type</code></td>
<td>是</td>
<td style="text-align:left">读取某一类字典记录。</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td>POST</td>
<td style="text-align:left"><code>/api/types/tabulars</code></td>
<td>是</td>
<td style="text-align:left">读取多类字典数据记录。</td>
</tr>
<tr>
<td style="text-align:left">todo</td>
<td>PUT</td>
<td style="text-align:left"><code>/api/todo/confirm/:key</code></td>
<td>是</td>
<td style="text-align:left">确认待办。</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td>PUT</td>
<td style="text-align:left"><code>/api/todo/reject/:key</code></td>
<td>是</td>
<td style="text-align:left">拒绝待办。</td>
</tr>
<tr>
<td style="text-align:left">token</td>
<td>POST</td>
<td style="text-align:left"><code>/oauth/token</code></td>
<td>否</td>
<td style="text-align:left">使用授权码交换令牌专用方法。</td>
</tr>
<tr>
<td style="text-align:left">uri</td>
<td>GET</td>
<td style="text-align:left"><code>/api/x-api/:key</code></td>
<td>是</td>
<td style="text-align:left">读取Uri配置信息。</td>
</tr>
<tr>
<td style="text-align:left">user</td>
<td>GET</td>
<td style="text-align:left"><code>/api/user</code></td>
<td>是</td>
<td style="text-align:left">读取当前登录用户基本信息。</td>
</tr>
</tbody>
</table>
<h3>2. 特定说明</h3>
<ul>
<li><code>/api/ox/relation/save</code>：保存关系专用方法（CMDB专用）。</li>
<li><code>/api/ox/relation/delete</code>：删除关系专用方法（CMDB专用）。</li>
</ul>
</div>




























        
        </div>
    

    

    

    
    
    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id=".action"><span class="type-signature">(async, static) </span>action<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.action</code></h2>
<ul>
<li>接口：<code>/api/form/actions</code>（POST）</li>
<li>安全：是</li>
</ul>
<pre class="prettyprint source lang-json"><code>{
    &quot;control&quot;: &quot;控件ID，对应 UI_FORM 中的 CONTROL_ID&quot;,
    &quot;name&quot;: &quot;表单名称&quot;,
    &quot;op&quot;: [],
    &quot;remote&quot;: &quot;Boolean，是否读取远程配置，默认无值。&quot;
}
</code></pre>
<p>该接口会执行分流操作。</p>
<ul>
<li>远程读取：<code>POST /api/form/actions</code>，尚未开发该接口后端（开发中）。</li>
<li>本地读取：（默认）直接读取参数中op来构造合法的Action信息。</li>
</ul>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>读取表单中的action专用方法。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".apis"><span class="type-signature">(async, static) </span>apis<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.apis</code></h2>
<ul>
<li>接口：<code>/api/x-api/search</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>读取当前系统中所有的接口信息，读取时候自动为系统追加查询条件：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;criteria&quot;: {
        &quot;&quot;: true
    }
}
</code></pre>
<p>根据查询引擎规范该条件追加后，会生成<code>AND</code>操作符来连接所有的<code>params</code>中存在的条件。</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".app"><span class="type-signature">(async, static) </span>app<span class="signature">(failure)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.app</code></h2>
<ul>
<li>接口：<code>/app/name/:name</code>（GET）</li>
<li>安全：否</li>
</ul>
<p>此接口一般用于初始化过程，调用<code>Ux.ajaxFetch</code>函数从远程读取应用程序配置，而且这个接口不带安全认证，也无法
读取到<code>appKey</code>这种敏感信息。该函数可传一个Function的异常回调函数，当访问过程中出错时，执行该函数处理异常流程。</p>
<blockquote>
<p>参数中的<code>:name</code>参数直接从<code>Ux.Env.APP</code>中读取，该值配置在环境变量中。</p>
</blockquote>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>failure</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>容错专用函数。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".application"><span class="type-signature">(async, static) </span>application<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.application</code></h2>
<ul>
<li>接口：<code>/api/app</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>带缓存地读取应用程序信息，这个方法会执行校验：</p>
<ol>
<li>系统调用<code>Ux.isInit()</code>方法读取应用信息，如果应用信息不存在则直接抛出异常。</li>
<li>如果拥有应用信息，并且该应用包含了<code>appKey</code>数据，则直接从缓存中读取数据。</li>
<li>如果没有包含<code>appKey</code>，则只证明执行了第一次初始化，需要再次读取（敏感信息）。</li>
</ol>
<blockquote>
<p><code>appKey</code>是用来判断首次初始化和二次初始化的核心字段，而且该接口会使用appKey读取应用配置数据。</p>
</blockquote>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".attributes"><span class="type-signature">(async, static) </span>attributes<span class="signature">(identifier)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.attributes</code></h2>
<p>读取单个模型的属性信息</p>
<ul>
<li>接口：<code>/api/model/identifier/:identifier</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>根据模型中的统一标识符<code>identifier</code>读取模型中的属性集</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>identifier</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>模型标识符</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authorize"><span class="type-signature">(async, static) </span>authorize<span class="signature">(request)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.authorize</code></h2>
<ul>
<li>接口：<code>/oauth/authorize</code>（POST）</li>
<li>安全：否</li>
</ul>
<p>申请临时码专用方法：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;client_id&quot;: &quot;客户ID&quot;,
    &quot;client_secret&quot;: &quot;客户账号颁布的密钥&quot;,
    &quot;response_type&quot;: &quot;code&quot;,
    &quot;scope&quot;: &quot;应用的域&quot;
}
</code></pre>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>client_id</code></td>
<td style="text-align:left">客户端ID，对单个用户而言就是<code>S_USER</code>表中的用户主键。</td>
</tr>
<tr>
<td style="text-align:left"><code>client_secret</code></td>
<td style="text-align:left">创建用户账号（或第三方对接应用）时，平台会发放专用密钥（一个随机字符串）。</td>
</tr>
<tr>
<td style="text-align:left"><code>response_type</code></td>
<td style="text-align:left">默认值<code>code</code>表示授权码流程，也可使用其他符合OAuth规范的类型。</td>
</tr>
<tr>
<td style="text-align:left"><code>scope</code></td>
<td style="text-align:left">应用程序域字段数据，该字段存储于<code>X_APP</code>中用来限定多应用平台中每个应用的单独信息。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>request</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>临时码申请请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".category"><span class="type-signature">(async, static) </span>category<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.category</code></h2>
<ul>
<li>接口：
<ul>
<li>读唯一：<code>/api/:type/category/:code</code>（GET）</li>
<li>读某一类：<code>/api/type/categories/:type</code>（GET）</li>
<li>读几类：<code>/api/type/categories</code>（POST）</li>
</ul>
</li>
<li>安全：是</li>
</ul>
<p>读取<code>X_CATEGORY</code>专用接口（三义性接口），这个方法会分三种方式读取，根据参数判断。</p>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">读取的<code>X_CATEGORY</code>的类型，对应<code>TYPE</code>字段。</td>
</tr>
<tr>
<td style="text-align:left">code</td>
<td style="text-align:left">读取的<code>X_CATEGORY</code>的编码，对应<code>CODE</code>字段。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>当前字典专用请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".company"><span class="type-signature">(async, static) </span>company<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.company</code></h2>
<ul>
<li>接口：<code>/api/company/employee/:eid</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>根据用户数据中存储的员工主键<code>employeeId</code>读取员工所属公司信息，如果未登录则读取的数据为空。</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".control"><span class="type-signature">(async, static) </span>control<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.control</code></h2>
<ul>
<li>接口：<code>/api/ui/control</code>（POST）</li>
<li>安全：是</li>
</ul>
<pre class="prettyprint source lang-json"><code>{
    &quot;type&quot;: &quot;两种类型&quot;,
    &quot;control&quot;: &quot;控件ID&quot;
}
</code></pre>
<p>读取控件配置<code>UI_CONTROL</code>相关数据。</p>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">读取的控件类型信息，目前分为<code>FORM | LIST</code>三种，不仅读取<code>UI_CONTROL</code>表，也会读取子表信息。</td>
</tr>
<tr>
<td style="text-align:left">control</td>
<td style="text-align:left">传入需要读取控件的ID值。</td>
</tr>
</tbody>
</table>
<ul>
<li>type = FORM，读取表单配置数据。</li>
<li>type = LIST，读取列表配置数据。</li>
</ul>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>控件专用请求</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".forest"><span class="type-signature">(async, static) </span>forest<span class="signature">(type, mode)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.forest</code></h2>
<ul>
<li>接口:
<ul>
<li>读取某一类：<code>/api/type/categories/:type</code>（GET）</li>
<li>判断节点</li>
</ul>
</li>
</ul>
<p>节点主要包含两种：</p>
<ul>
<li>整棵树：tree =</li>
<li>树中某个分支：tree = xxx, <condition></li>
</ul>
<p>连接模式</p>
<ol>
<li>mode = &quot;REPLACE&quot;: 抓取的树直接替换当前节点</li>
<li>mode = &quot;CONNECT&quot;: 抓取的树作为当前节点的子节点</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>type</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>读取某一类 X_CATEGORY 构造森林</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mode</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>REPLACE</code>
                
                </td>
            

            <td class="description last"><p>连接模式</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".form"><span class="type-signature">(async, static) </span>form<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.form</code></h2>
<ul>
<li>接口：<code>/api/ui/form/:code</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取表单专用配置接口，根据表单的code读取表单配置信息。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>表单请求，包含表单的<code>code</code>。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".forms"><span class="type-signature">(async, static) </span>forms<span class="signature">(identifier)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.forms</code></h2>
<ul>
<li>接口：<code>/api/ui/forms/:identifier</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取模型下的表单配置信息，这个接口读取和<code>identifier</code>模型相关的所有表单配置信息。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>identifier</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>模型统一标识符。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".inited"><span class="type-signature">(async, static) </span>inited<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.inited</code></h2>
<ul>
<li>接口
<ul>
<li>应用接口：<code>/api/app</code>（GET）</li>
<li>菜单数据：<code>/api/menus</code>（GET）</li>
</ul>
</li>
<li>安全：是</li>
</ul>
<p>该接口为登录过后的主页调用的专用初始化接口，主要执行两个操作：</p>
<ol>
<li>执行 <code>X_APP</code> 的全配置信息（包括敏感信息，appKey）。</li>
<li>执行 <code>X_MENU</code> 的全配置信息（只读取当前菜单）。</li>
</ol>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".jobResume"><span class="type-signature">(async, static) </span>jobResume<span class="signature">(key)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.jobResume</code></h2>
<ul>
<li>接口：<code>/api/job/resume/:key</code>（PUT）</li>
<li>安全：是</li>
</ul>
<p>恢复任务专用接口，<code>I_JOB</code>特定应用。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>恢复任务的键。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".jobs"><span class="type-signature">(async, static) </span>jobs<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.jobs</code></h2>
<ul>
<li>接口：<code>/api/job/info/by/sigma</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取当前系统中所有的任务信息（按sigma分类）。</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".jobStart"><span class="type-signature">(async, static) </span>jobStart<span class="signature">(key)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.jobStart</code></h2>
<ul>
<li>接口：<code>/api/job/start/:key</code>（PUT）</li>
<li>安全：是</li>
</ul>
<p>启动任务专用接口</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>启动任务的键。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".jobStop"><span class="type-signature">(async, static) </span>jobStop<span class="signature">(key)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.jobStop</code></h2>
<ul>
<li>接口：<code>/api/job/stop/:key</code>（PUT）</li>
<li>安全：是</li>
</ul>
<p>停止任务专用接口</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>停止任务的键。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".lists"><span class="type-signature">(async, static) </span>lists<span class="signature">(identifier)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.lists</code></h2>
<ul>
<li>接口：<code>/api/ui/lists/:identifier</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取模型下的所有列表配置信息</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>identifier</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>模型统一标识符。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".login"><span class="type-signature">(async, static) </span>login<span class="signature">(request, options)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.login</code></h2>
<ul>
<li>接口：<code>/oauth/login</code>（POST）</li>
<li>安全：否</li>
</ul>
<p>登录入口专用，请求数据如：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;username&quot;: &quot;登录账号&quot;,
    &quot;password&quot;: &quot;MD5加密过后的密码&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>request</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>登录专用请求。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>选项处理</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".logout"><span class="type-signature">(async, static) </span>logout<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.logout</code></h2>
<ul>
<li>接口：<code>/api/user/logout</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>注销登出专用接口</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".menus"><span class="type-signature">(async, static) </span>menus<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.menus</code></h2>
<ul>
<li>接口：<code>/api/menus</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>登录过后根据<code>Ux.isInit()</code>的应用信息返回当前应用的所有菜单数据，应用数据存储在
<code>X_APP</code>表中，包含<code>X_SOURCE</code>的数据源信息，菜单数据存储在<code>X_MENU</code>表中。</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".mission"><span class="type-signature">(async, static) </span>mission<span class="signature">(key)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.mission</code></h2>
<ul>
<li>接口：<code>/api/job/info/mission/:key</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取 Mission 相关的 Job任务配置。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>当前任务的<code>key</code>主键</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".module"><span class="type-signature">(async, static) </span>module<span class="signature">(uri)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.module</code></h2>
<ul>
<li>接口：<code>/api/module?entry={entry}</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>根据当前路由路径读取<code>X_MODULE</code>中的模块配置信息，该模块的配置信息和<code>Cab.json</code>中绑定
的资源文件合并生成当前模块的所有配置信息。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>uri</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>当前模块的入口信息。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".ops"><span class="type-signature">(async, static) </span>ops<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.ops</code></h2>
<ul>
<li>接口：<code>/api/ui/ops</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>读取操作专用配置<code>UI_OP</code>，入参为：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;control&quot;: &quot;控件ID&quot;,
    &quot;identifier&quot;: &quot;模型标识符&quot;,
    &quot;type&quot;: &quot;OP&quot;
}
</code></pre>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">固定值OP，暂定为只读取OP相关信息。</td>
</tr>
<tr>
<td style="text-align:left">control</td>
<td style="text-align:left">（动态读取专用）传入需要读取控件的ID值，读取和<code>UI_CONTROL</code>相关的数据库记录。</td>
</tr>
<tr>
<td style="text-align:left">identifier</td>
<td style="text-align:left">（静态读取专用）传入模型标识符，读取静态配置，配置文件在<code>plugin/ui/ops.json</code>中。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>控件专用请求</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".page"><span class="type-signature">(async, static) </span>page<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.page</code></h2>
<ul>
<li>接口：<code>/api/ui/page</code>（POST）</li>
<li>安全：是</li>
</ul>
<ol>
<li>先读取<code>UI_PAGE</code>中的页面配置信息。</li>
<li>然后读取<code>UI_LAYOUT</code>中的模板配置信息。</li>
<li>最后根据<code>pageId</code>读取<code>UI_CONTROL</code>中的控件配置信息。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>页面专用请求</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".password"><span class="type-signature">(async, static) </span>password<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.password</code></h2>
<ul>
<li>接口：<code>/api/user/password</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>更新用户登录密码专用接口</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>更新密码所用的请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".profile"><span class="type-signature">(async, static) </span>profile<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.profile</code></h2>
<ul>
<li>接口：<code>/api/user/profile</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>更新登录用户的Profile详细信息。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>更新账号专用请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".relation"><span class="type-signature">(async, static) </span>relation<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.relation</code></h2>
<ul>
<li>接口：<code>/api/relation</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取关系定义专用接口</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".relationDelete"><span class="type-signature">(async, static) </span>relationDelete<span class="signature">(keys)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.relationDelete</code></h2>
<ul>
<li>接口：<code>/api/ox/relation/remove</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>删除关系专用接口</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>keys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>将要被删除的关系的 key 集合</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".relationSave"><span class="type-signature">(async, static) </span>relationSave<span class="signature">(relations)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.relationSave</code></h2>
<ul>
<li>接口：<code>/api/ox/relation/save</code>（POST）</li>
<li>安全：是</li>
</ul>
<p>存储关系专用</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>relations</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>存储关系专用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".tabular"><span class="type-signature">(async, static) </span>tabular<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.tabular</code></h2>
<ul>
<li>接口：
<ul>
<li>读唯一：<code>/api/:type/tabular/:code</code>（GET）</li>
<li>读某一类：<code>/api/type/tabulars/:type</code>（GET）</li>
<li>读几类：<code>/api/type/tabulars</code>（POST）</li>
</ul>
</li>
<li>安全：是</li>
</ul>
<p>读取<code>X_TABULAR</code>专用接口（三义性接口），这个方法分三种方式读取，根据参数判断。</p>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">读取的<code>X_TABULAR</code>的类型，对应<code>TYPE</code>字段。</td>
</tr>
<tr>
<td style="text-align:left">code</td>
<td style="text-align:left">读取的<code>X_TABULAR</code>的编码，对应<code>CODE</code>字段。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>当前字典专用请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".todo"><span class="type-signature">(async, static) </span>todo<span class="signature">(params, confirmed)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.token</code></h2>
<ul>
<li>接口：
<ul>
<li>确认：<code>/api/todo/confirm/:key</code>（PUT）</li>
<li>拒绝：<code>/api/todo/reject/:key</code>（PUT）</li>
</ul>
</li>
<li>安全：是</li>
</ul>
<p>Todo待办的确认和拒绝专用接口。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>待办专用请求</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>confirmed</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>true</code>
                
                </td>
            

            <td class="description last"><p>确认待办还是拒绝待办</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".token"><span class="type-signature">(async, static) </span>token<span class="signature">(request)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.token</code></h2>
<ul>
<li>接口：<code>/oauth/token</code>（POST）</li>
<li>安全：否</li>
</ul>
<p>请求格式</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;client_id&quot;: &quot;客户ID&quot;,
    &quot;code&quot;: &quot;临时验证码&quot;
}
</code></pre>
<p>使用临时授权码交换令牌专用方法。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>request</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>交换令牌专用请求。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".uri"><span class="type-signature">(async, static) </span>uri<span class="signature">(key)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.uri</code></h2>
<ul>
<li>接口：<code>/api/x-api/:key</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取具体 uri 配置。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>当前任务的<code>key</code>主键</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".user"><span class="type-signature">(async, static) </span>user<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.user</code></h2>
<ul>
<li>接口：<code>/api/user</code>（GET）</li>
<li>安全：是</li>
</ul>
<p>读取当前登录用户的基本信息。</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".visitor"><span class="type-signature">(async, static) </span>visitor<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「接口」<code>Ex.I.visitor</code></h2>
<ul>
<li>接口：<code>/ui/visitor/:identifier/:page</code>（POST）</li>
<li>安全：是</li>
</ul>
<pre class="prettyprint source lang-json"><code>{
    &quot;identifier&quot;: &quot;路径参数，模型标识符&quot;,
    &quot;page&quot;: &quot;页面ID&quot;,
    &quot;view&quot;: &quot;「位置1」视图信息&quot;,
    &quot;position&quot;: &quot;「位置2」位置信息&quot;,
    &quot;type&quot;: &quot;类型选择，FORM / LIST&quot;,
    &quot;alias&quot;: &quot;「位置3」别名信息&quot;
}
</code></pre>
<p>位置信息计算规则：view / position / alias</p>
<ul>
<li>view：视图信息，直接从 $myView 中提取。</li>
<li>position：位置信息，直接从 $myView 中提取。</li>
<li>alias：别名处理，同样用来计算 alias。</li>
</ul>
<h3>内部参数</h3>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">读取控件的专用类型，主要包含<code>FORM | LIST</code>两种。</td>
</tr>
<tr>
<td style="text-align:left">identifier</td>
<td style="text-align:left">模型标识符。</td>
</tr>
<tr>
<td style="text-align:left">page</td>
<td style="text-align:left">页面专用ID。</td>
</tr>
<tr>
<td style="text-align:left">view/position/alias</td>
<td style="text-align:left">专用位置计算信息。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>params 参数信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回Promise</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
    

    

    
</article>

</section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a> on Fri Apr 15 2022 15:55:10 GMT+0800 (China Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>

<script src="scripts/search.js" defer></script>



</body>
</html>